/*
 * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package com.inspur.edp.lcm.metadata.spi.entity;

import com.inspur.edp.lcm.metadata.spi.MetadataElementValidator;
import lombok.Getter;
import lombok.Setter;

/**
 * 元数据内容节点引用关系
 *
 * @author sunhongfei
 */
@Getter
@Setter
public class MetadataElementDependencyDetail {
    /**
     * 当前元数据内容节点
     */
    private MetadataElement sourceElement;
    /**
     * 引用内容节点标识<p>
     * 需与引用元数据协商,若引用元数据提供了自有的MetadataElementLocator扩展类,此处应使用引用元数据指定扩展类
     */
    private MetadataElementLocator targetElementLocator;
    /**
     * 当前内容节点关系的引用类型。<p>
     * 在对此内容节点引用关系进行校验时，获取{@link MetadataElementValidator}校验规则的所有实现类
     * 若某个实现类指定其校验引用类型{@link MetadataElementValidator#getReferenceType()}与当前引用类型一致时，使用此实现类对当前内容节点引用关系进行校验
     */
    private String referenceType;
}
